package main;


import java.net.URL;
import java.net.URLClassLoader;
import java.security.CodeSource;
import java.security.ProtectionDomain;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

import helden.plugin.werteplugin2.PluginHeld2;
import helden.plugin.HeldenWertePlugin3;
import helden.plugin.werteplugin3.PluginHeldenWerteWerkzeug3;

/**
 * @author Christian
 * 
 */
public class HeldenStart implements HeldenWertePlugin3 {
	
	/**
	 * Defaultconstructor Gefordert von der Helden-Software
	 */
	public HeldenStart() {

		super();
	}
	
	/**
	 * Gibt den Namen des Plugins an. Wird verwendet um das Menu auf zu bauen.
	 * 
	 * @return name
	 */
	@Override
	public String getMenuName() {

		return "ZauberInfo " + Controller.getVersion();
	}
	
	/**
	 * Wird angezeigt, wenn die maus über den Menu schwebt.
	 * 
	 * @return tooltip
	 */
	@Override
	public String getToolTipText() {

		return "Plugin zum Befüllen der Zauber Kommentare";
	}
	
	/**
	 * Liefert das ImageIcon für das Menu
	 * 
	 * @return ImageIcon oder null
	 */
	@Override
	public ImageIcon getIcon() {

		ProtectionDomain currentProtectionDomain = getClass()
				.getProtectionDomain();
		CodeSource codeSource = currentProtectionDomain.getCodeSource();
		URL icon = new URLClassLoader(new URL[] { codeSource.getLocation() })
				.getResource("main/Zauberer.gif");
		return new ImageIcon(icon);
	}
	
	/**
	 * Gibt helden den Typ dieses Plugins
	 * 
	 * @return SIMPLE
	 */
	@Override
	public String getType() {

		return DATEN3;
	}
	
	/**
	 * Workmethode ohne Funktion
	 * 
	 * @param frame
	 *            Mainframe
	 */
	@Override
	public void doWork(JFrame frame) {

		// Ist leer da nur doWork(JFrame frame, PluginZauberInfo[] zauberInfos,
		// PluginSonderfertigkeit[] rep) genutzt wird
	}
	

	/**
	 * @param frame Mainframe
	 * @param helden Array mit allen Helden
	 * @param phww HeldenWerkzeug
	 * 
	 */
	@Override
	public void doWork(JFrame frame, PluginHeld2[] helden,
			PluginHeldenWerteWerkzeug3 phww) {

		new Controller(frame, phww, helden);
	}
}